using System.ServiceModel;
using Nakio.Framework.Communication;

namespace Nakio.Framework.Interfaces
{
    [ServiceContract(CallbackContract = typeof(IClientCallback))]
    public interface IServerContract
    {
        [OperationContract]
        EncryptToken LogClient(string username, string password);

        [OperationContract(IsOneWay = true)]
        void ExecuteCommand(EncryptedCommand encryptedCommand);

        [OperationContract]
        object ExecuteReturnCommand(EncryptedCommand encryptedCommand);

        [OperationContract(IsOneWay = true)]
        void LogOffClient();
    }
}